#pragma once
#include <iostream>
#include <string>
#include <fstream>

class util
{
public:
    static std::string getOneLine(std::string& buffer, const std::string& sep)
    {
        auto pos = buffer.find(sep);
        if(pos == std::string::npos) return "";

        std::string sub = buffer.substr(0, pos);
        // buffer.erase(0, pos);
        return sub;
    }

    static bool readFile(const std::string& srcPath, char* out, int size)
    {
        // 从srcPath中读取资源到out中
        std::ifstream in(srcPath, std::ios::binary);
        if(!in.is_open()) return false;// 暂时认为打开失败是因为资源不存在

        // std::string line;
        // while(std::getline(in, line))// getline只适用于文本类读取，按行读取
        // {
        //     *out += line;
        // }

        // 而对于视频音频图片等，是二进制数据，是没有行的概念的，所有要以二进制的方式打开文件，然后用二进制方式读取
        in.read(out, size);

        // std::cout << "readFile:path: " << srcPath << std::endl;// test
        // std::cout << "readFile:size: " << size << std::endl;// test

        in.close();

        return true;
    }
    // static bool readFile(const std::string& srcPath, std::string* out)
    // {
    //     std::ifstream in(srcPath);
    //     if(!in.is_open()) return false;
    //
    //     std::string line;
    //     while(std::getline(in, line))// 暂定为404页面只有文本资源
    //     {
    //         *out += line;
    //     }
    //     in.close();
    //
    //     return true;
    // }
};